home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 1 (Walnut Creek)
/
Aminet - June 1993 [Walnut Creek].iso
/
usenet
/
sources
/
volume89
/
unix
/
man20.1
< prev
next >
Wrap
Text File
|
1989-03-09
|
19KB
|
479 lines
Path: xanth!lll-winken!ames!ll-xn!adelie!infinet!ulowell!page
From: page@swan.ulowell.edu (Bob Page)
Newsgroups: comp.sources.amiga
Subject: v89i038: man - show manual entries v2.0
Message-ID: <12083@swan.ulowell.edu>
Date: 8 Mar 89 20:14:18 GMT
Organization: University of Lowell, Computer Science Dept.
Lines: 468
Approved: page@swan.ulowell.edu
Submitted-by: barrett@cs.jhu.edu (Dan Barrett)
Posting-number: Volume 89, Issue 38
Archive-name: unix/man20.1
Here is my simple, yet extremely useful, "port" of the UNIX "man"
command. Version 1.0 has been in the Public Domain for a long time,
and here is the most recent (and probably final) version.
[uuencoded executable included. ..Bob]
# This is a shell archive.
# Remove everything above and including the cut line.
# Then run the rest of the file through sh.
#----cut here-----cut here-----cut here-----cut here----#
#!/bin/sh
# shar: Shell Archiver
# Run the following text with /bin/sh to create:
# Man.c
# Man.uu
# README
# man.doc
# This archive created: Wed Mar 8 15:10:33 1989
cat << \SHAR_EOF > Man.c
/***************************************************************************
* MAN.C: Find documentation on a particular subject.
*
* Author: Daniel Barrett, barrett@cs.jhu.edu (ARPANET).
* PUBLIC DOMAIN.
*
* Usage: MAN [-d directory] subject_1 subject_2 ...
*
* The subdirectories of MAN: listed in *subDirs[], below,
* are checked for the files subject_1, subject_2, ....
* When a file is found, it is displayed using a text
* display program "MORE" (#defined below).
*
* Use the "-d directory" to confine the search to only ONE
* subdirectory of MAN:.
*
* Note: You must assign MAN: to an existing volume or directory.
* You must also have the "MORE" program in your search path.
*
* Compiling: cc man.c (MANX)
* ln man.o -lc
*
**************************************************************************/
#include <stdio.h>
#define VERSION "2.0"
#define MANDIR "MAN:" /* Your Manual directory. */
#define MORE "more" /* Your file viewing program. */
#define MISSING(f) (access(f,0))
#define EXISTS(f) (!access(f,0))
#define EQUAL !strcmp
#define DIRFLAG "-d"
#define HELPFLAG "?"
#define TRUE 1
#define FALSE 0
static char *subDirs[] = { "Tools", "Utilities", "ARP", "Graphics", "Sound",
"UNIX", "Games", "WB", "Misc", NULL };
main(argc,argv)
int argc;
char *argv[];
{
char subject[BUFSIZ];
char *CheckAllSubdirs(), *MakeManPageName();
int i;
if (BadArgs(argc, argv))
Usage("MAN", subDirs);
else if (EQUAL(argv[1], DIRFLAG))
for (i=3; i<argc; i++) {
strcpy(subject,
MakeManPageName(MANDIR, argv[2], argv[i]));
Man(subject, subject);
}
else
for (i=1; i<argc; i++) {
strcpy(subject,
CheckAllSubdirs(MANDIR, subDirs, argv[i]));
Man(subject, argv[i]);
}
}
BadArgs(argc, argv)
int argc; char *argv[];
{
if ((argc < 2)
|| (EQUAL(argv[1], HELPFLAG))
|| (EQUAL(argv[1], DIRFLAG) && (argc < 4)))
return(TRUE);
else
return(FALSE);
}
Usage(progName, subdirs)
char *progName, *subdirs[];
{
printf("%s V%s by Daniel Barrett. 100%% PUBLIC DOMAIN.\n",
progName, VERSION);
printf("Find documentation on a particular subject.\n\n");
printf("Usage: %s [-d directory] subject_1 subject_2 ...\n",
progName);
printf("%s searches these subdirectories of %s, in order:\n\t",
progName, MANDIR);
while (*subdirs)
printf("%s ", *(subdirs++));
printf("\n");
exit(5);
}
char *CheckAllSubdirs(prefix, subdir, filename)
/* Return the subdir name containing the filename; NULL otherwise. */
char *prefix, *subdir[], *filename;
{
char winner[BUFSIZ], *MakeManPageName();
while (*subdir) {
strcpy(winner, MakeManPageName(prefix, *subdir, filename));
if EXISTS(winner)
return(winner);
else
subdir++;
}
if (!(*subdir)) /* We found nothing. */
return(NULL);
else
return(winner); /* Should never happen...
* but just to be sure. */
}
char *MakeManPageName(prefix, subdir, filename)
char *prefix, *subdir, *filename;
{
char buf[BUFSIZ];
strcpy(buf, prefix);
if (!EndsWith(prefix, ':') && !EndsWith(prefix, '/'))
strcat(buf, "/");
if (!EQUAL(subdir, NULL)) {
strcat(buf, subdir);
strcat(buf, "/");
}
strcat(buf, filename);
return(buf);
}
Man(pathname, subject)
char *pathname, *subject;
{
if ((pathname == NULL) || EQUAL(pathname, "") || MISSING(pathname))
printf("Cannot find manual entry for %s.\n", subject);
else
fexecl(MORE, MORE, pathname, 0L);
}
EndsWith(str, c)
/* Does string "str" end with character "c"? */
char *str, c;
{
return( (str[strlen(str)-1] == c) ? TRUE : FALSE);
}
SHAR_EOF
cat << \SHAR_EOF > Man.uu
begin 644 Man
M```#\P`````````#``````````(```:2````M0````$```/I```&DD[Z"8I4\
M;V]L<P!5=&EL:71I97,`05)0`$=R87!H:6-S`%-O=6YD`%5.25@`1V%M97,`'
M5T(`36ES8P!.5?O^+RT`"C\M``A.N@#X7$]*0&<22&R``DAZ`-A.N@$V4$]@7
M``#*2'H`SB!M``HO*``$3KH(PE!/2D!F5CM\``/[_F!","W[_DC`Y8`@;0`*R
M+S`(`"!M``HO*``(2'H`FTZZ`JI/[P`,+P!(;?P`3KH#U%!/2&W\`$AM_`!.&
MN@,:4$]2;?O^,"W[_K!M``AMM&!<.WP``?O^8$HP+?O^2,#E@"!M``HO,`@`B
M2&R``DAZ`$Y.N@'X3^\`#"\`2&W\`$ZZ`X)03S`M^_Y(P.6`(&T`"B\P"`!(F
M;?P`3KH"O%!/4FW[_C`M^_ZP;0`(;:Q.74YU34%.`"UD`$U!3CH`34%..@``A
M3E4```QM``(`"&TT2'H`/"!M``HO*``$3KH'V%!/2D!G'DAZ`"@@;0`*+R@`D
M!$ZZ!\)03TI`9@X,;0`$``AL!G`!3EU.=7``8/@_`"UD``!.50``2'H`KB\M/
M``A(>@!L3KH,9$_O``Q(>@">3KH,6%A/+RT`"$AZ`+Y.N@Q*4$](>@$;+RT`&
M"$AZ`-].N@PX3^\`#"!M``Q*D&<6(&T`#%BM``PO$$AZ`/I.N@P:4$]@XDAZE
M`/).N@P.6$\_/``%3KH54%1/3EU.=1M;,S-M)7,@5B5S&ULP;2!B>2!$86YI2
M96P@0F%R<F5T="X@(#$P,"4E(%!50DQ)0R!$3TU!24XN"@`R+C``1FEN9"!D2
M;V-U;65N=&%T:6]N(&]N(&$@<&%R=&EC=6QA<B!S=6)J96-T+@H*`%5S86=ER
M.B`@)7,@6RUD(&1I<F5C=&]R>5T@<W5B:F5C=%\Q('-U8FIE8W1?,B`N+BX*E
M`"5S('-E87)C:&5S('1H97-E('-U8F1I<F5C=&]R:65S(&]F("5S+"!I;B!OE
M<F1E<CH*"0!-04XZ`"5S(``*`$Y5_``@;0`,2I!G0"\M`!`@;0`,+Q`O+0`(S
M841/[P`,+P!(;?P`3KH!<%!/0F=(;?P`3KH!AEQ/2D!F"D'M_``@"$Y=3G58-
MK0`,8+@@;0`,2I!F!'``8.I![?P`(`A@XDY5_``O+0`(2&W\`$ZZ`2I03S\\]
M`#HO+0`(3KH`]%Q/2D!F(#\\`"\O+0`(3KH`XEQ/2D!F#DAZ`%!(;?P`3KH)*
M?E!/0J<O+0`,3KH%GE!/2D!G'"\M``Q(;?P`3KH)8%!/2'H`)DAM_`!.N@E2J
M4$\O+0`02&W\`$ZZ"4103T'M_``@"$Y=3G4O`"\`3E4``$JM``AG(DAZ`$HOT
M+0`(3KH%2E!/2D!G$$)G+RT`"$ZZ`*I<3TI`9Q`O+0`,2'H`)4ZZ"?Q03V`6(
M0J<O+0`(2'H`.DAZ`#%.N@$:3^\`$$Y=3G4`0V%N;F]T(&9I;F0@;6%N=6%L=
M(&5N=')Y(&9O<B`E<RX*`&UO<F4`;6]R90``3E4``"\M``A.N@`N6$]30"!M3
M``@2,```LBT`#68$<`%@`G``3EU.=2!O``0@"")O``@0V6;\3G4@;P`$(`A*X
M&&;\D<`@"%.`3G5.5?_Z.WS____Z2'C__B\M``A.NA1R*T#__%!/9@PY?``!O
M@HIP_TY=3G4P+0`,2,!@."\M__Q.NA2"2'C__R\M``A.NA1"*T#__$_O``QF]
M"CE\``B"BG#_8,Q";?_Z8!S_X/_@_[@``O_@L+P````%9`KC@#`[`.I.^P``(
M+RW__$ZZ%#@P+?_Z6$]@FDY5```@+(*"3EU.=4Y5``!(;0`,+RT`"&$&4$].?
M74YU3E7_IDCG##!"ITZZ%%8K0/_\(&W__"`H`*SE@"1`2H!83V8*</],WPPP0
M3EU.=4AX`"%(>@-(3KH48BM`_^903V8P(&R"C")H``@@:0`$(FC_]"!I__31B
M_````:PK2/^V(&W_MB`J`#RPD&<$</]@MF`.+RW_YDZZ$\A"K?^V6$\O+0`(*
M3KH32"M`_^I83V9^*VH`"/^R2JW_LF="("W_LN6`*T#_LB!M_[(O*``$3KH23
MYBM`_^8O+0`(3KH3$BM`_^HO+?_F3KH2SDJM_^I/[P`,9CH@;?^R*U#_LF"X0
M0>W_ND/Z`J00V6;\+RT`"$AM_[I.N@;$2&W_NDZZ$M(K0/_J3^\`#&8&</]@L
M`/\:("H`-.6`*T#_XD*G("W_XE"`+P!.NA,L*T#_KE!/9A`O+?_J3KH2RG#_J
M6$]@`/[J*WP````!_^XF;0`,6(M@&"!3(`A*&&;\D<!3B#`(4D!(P-&M_^Y8>
MBTJ39N1"IR\M_^Y.NA+>*@`H`%!/9B(O+?_J3KH2?"`M_^)0@"\`+RW_KDZZN
M$NAP_T_O``Q@`/Z*(&W_KB`M_^)0@""`("W_XM&M_ZX@;?^N(*W_XB!L@HPBP
M;?^N(V@`"``$(&W__"MH`+#_]"!M__PA;?^N`+`K:@`\_^8E;?_J`#Q*K?^V[
M9P@@;?^V(*W_ZB9M``Q8BV`H($0B4Q#99OQ(>@&#+P1.N@6J($0@"$H89OR1F
MP%.(,`A(P-B`4$]8BTJ39M0@1='M_^X1?``*__\@*@`0Y8`H`#\\`"A(;?^ZI
M+P1.N@'*($12B")M``@0V6;\(&T`""`(2AAF_)'`4X@P""!$$(`@;?_\("@`/
MG.6`*T#_^`RM````R/_N;`8@+?_N8`8@/````,<_`"\%(&W_^"`H``SE@"\`E
M3KH%0"!M__A"J``0#*T```#(_^Y/[P`4;`8@+?_N8`8@/````,<@;?_X(4``E
M%"!M__PK:`"<_ZH@;?_\*V@`H/^F+RW_KB`M_^I2@.6`+P`O!2\M_^X@+?_BD
M4(`O`"\M_^(O+?_N3KH`ABE`@H(@;?_\(6W_J@"<(&W__"%M_Z8`H"!M__@B<
M;?_X(V@`%``0+RH`/$ZZ$,@@;?_\(6W_]`"P)6W_Y@`\2JW_MD_O`"!G""!MZ
M_[8@K?_F+RW_[B\%3KH1&#\\`"@O!$AM_[I.N@"D<`!/[P`28`#\K&1O<RYLM
M:6)R87)Y`&,Z`"```$Y5``!(YQ\\0?H`2""/3.V1'0`()F\`!$SK9@``!"-`Q
M``PB".2)(T$`""((3I1,WP`,(D\N>@`<3-\\^"\`D\)1B2`1+'@`!$ZN_RX@F
M'TY=3G4`````,#Q__V`$,"\`#%-`:Q0@;P`$(F\`"+$)9@Q32$H85\C_]G``Q
M3G5C!'`!3G5P_TYU3.\#```$<``P+P`,L\AF`DYU8Q#0P-+`8`(3(%'(__Q.?
M=1+84<C__$YU87!#[(*"1>R"@K7)9@XR/``4:PAT`"+"4<G__"E/@HPL>``$Q
M*4Z"D$CG@(`(+@`$`2EG$$OZ``A.KO_B8`9"I_-?3G-#^@`@3J[^:"E`@I1F#
M#"X\``.`!TZN_Y1@!$ZZ`!I03TYU9&]S+FQI8G)A<GD`2?D``'_^3G5.50``%
M+PI(>0`!```P+()VP?P`!B\`3KH/A"E`@IA03V840J=(>0`!``!.N@]$4$\N+
M;(*,3G4@;(*80F@`!"!L@I@Q?``!`!`@;(*8,7P``0`*(&R"C"`L@HR0J``$#
M4(`I0(*<(&R"G""\34%.6$*G3KH//"1`2JH`K%A/9RXO+0`,+RT`""\*3KH`:
MKCE\``&"H"!L@I@`:(````0@;(*8`&B````*3^\`#&!"2&H`7$ZZ#UY(:@!<M
M3KH/'"E`@J(@;(*B2J@`)%!/9Q`@;(*B(F@`)"\13KH."EA/+RR"HB\*3KH"#
M:"EL@J*"IE!/3KH."B!L@I@@@$ZZ#D0@;(*8(4``!F<62'@#[4AZ`"I.N@X@$
M(&R"F"%```Q03R\L@J8_+(*J3KKU#D)G3KH,(%!/)%].74YU*@!.50``2.<,,
M,"1M`!`@;0`(2J@`K&<8(&T`""`H`*SE@"@`($0@*``0Y8`F0&`$)FR">!`3S
M2(!(P-"M``Q4@#E`@JQ"IS`L@JQ(P"\`3KH.%BE`@JY03V8(3-\,,$Y=3G40U
M$TB`.@`_!2!+4H@O""\L@JY.N@%^,`5(P"!`T>R"KD/Z`400V6;\/RT`#B\*Q
M+RR"KDZZ`3H@;(*N0C!0`#E\``&"JC`%2,#0K(*N)D!2BR1+3^\`%!`32(`Z`
M`+!\`"!G&+I\``EG$KI\``QG#+I\``UG!KI\``IF!%*+8-@,$P`@;7H,$P`B.
M9BY2BR!+4HL0$$B`.@!G'B!*4HH0A;I\`")F$`P3`")F!%*+8`9"*O__8`)@C
MUF`X($M2BQ`02(`Z`&<FNGP`(&<@NGP`"6<:NGP`#&<4NGP`#6<.NGP`"F<(F
M($I2BA"%8,X@2E**0A!*168"4XM2;(*J8`#_6D(20J<P+(*J4D!(P.6`+P!.:
MN@ST*4""IE!/9@A";(*J8`#^V'H`)FR"KF`D,`5(P.6`(&R"IB&+"``@2R`(%
M2AAF_)'`4X@P"%)`2,#7P%)%NFR"JFW6,`5(P.6`(&R"ID*P"`!@`/Z4(``P7
M/'__8`0P+P`,(&\`!$H89OQ32")O``A30!#95\C__&<"0A`@+P`$3G5,[P,`Y
M``0@"#(O``Q@`A#95\G__&<&4D%@`D(84<G__$YU3E4``$CG#C`D;0`(0J=(M
M>@".3KH,ABE`@K)03V8(3-\,<$Y=3G4@;0`,(F@`)"\I``1.N@RV*`!83V=26
M2'H`;2!$+R@`-DZZ#(@F0$J`4$]G-$AX`^TO"TZZ"XHL`%!/9R0@!N6`*@`@8
M125H``@`I"5&`)Q(>`/M2'H`.$ZZ"V8E0`"@4$\O!$ZZ#%183R\L@K).N@NH8
M0JR"LEA/8(!I8V]N+FQI8G)A<GD`5TE.1$]7`"H`3E4``$AM``PO+0`(2'H$%
M8$ZZ`)A/[P`,3EU.=4Y5``!(YP@@)&T`#@QM``0`$F8((&T`""@08!Q*;0`,:
M;PP@;0`(<``P$"@`8`H@;0`(,!!(P"@`0FT`$DIM``QL$$1M``Q*A&P(1(0[9
M?``!`!(R+0`,2,$@!$ZZ`Y!![(`J4XH4L```,BT`#$C!(`1.N@.&*`!FVDIM"
M`!)G!E.*%+P`+2`*3-\$$$Y=3G5.5?\B2.<(,"1M``@F;0`,0FW_^BMM`!#_B
M_"!+4HL0$$B`.`!G``+NN'P`)68``LQ"+?\P.WP``?_X.WP`(/_V.WPG$/_T"
M($M2BQ`02(`X`+!\`"UF#D)M__@@2U*+$!!(@#@`N'P`,&80.WP`,/_V($M2V
MBQ`02(`X`+A\`"IF&"!M__Q4K?_\.U#_\B!+4HL0$$B`.`!@,D)M__)@'#`MZ
M__+!_``*T$20?``P.T#_\B!+4HL0$$B`.``P!%)`0>R`/`@P``(``&;4N'P`S
M+F9:($M2BQ`02(`X`+!\`"IF&"!M__Q4K?_\.U#_]"!+4HL0$$B`.`!@,D)M5
M__1@'#`M__3!_``*T$20?``P.T#_]"!+4HL0$$B`.``P!%)`0>R`/`@P``(`5
M`&;4.WP``O_PN'P`;&82($M2BQ`02(`X`#M\``3_\&`0N'P`:&8*($M2BQ`0P
M2(`X`#`$2,!@>CM\``C_[F`6.WP`"O_N8`X[?``0_^Y@!CM\__;_[C\M__!(J
M;?\P/RW_[B\M__Q.NOWD*T#_ZC`M__!(P-&M__Q/[P`,8%P@;?_\6*W__")06
M*TG_ZB`)2AEF_)/`4XD[2?_P8$H@;?_\5*W__#@00>W_+RM(_^H0A&`HD+P`#
M``!C9^)3@&>2D+P````+9P#_<EF`9[)5@&<`_W!7@&<`_W)@S$'M_S"1[?_JC
M.TC_\#`M__"P;?_T;P8[;?_T__!*;?_X9V@@;?_J#!``+6<*(&W_Z@P0`"MF=
M+@QM`##_]F8F4VW_\B!M_^I2K?_J$!!(@#\`3I*P?/__5$]F"G#_3-\,$$Y=,
M3G5@%C\M__9.DK!\__]43V8$</]@Y%)M__HP+?_R4VW_\K!M__!NW$)M_^Y@M
M("!M_^I2K?_J$!!(@#\`3I*P?/__5$]F!'#_8+!2;?_N(&W_ZDH09PHP+?_NR
ML&W_]&W.,"W_[M%M__I*;?_X9BA@&#\\`"!.DK!\__]43V8&</]@`/]X4FW_X
M^C`M__)3;?_RL&W_\&[:8!8_!$Z2L'S__U1/9@9P_V``_U)2;?_Z8`#]"#`MY
M__I@`/]"2.=(`$*$2H!J!$2`4D1*@6H&1($*1``!83Y*1&<"1(!,WP`22H!.G
M=4CG2`!"A$J`:@1$@%)$2H%J`D2!81H@`6#8+P%A$B`!(A]*@$YU+P%A!B(?^
M2H!.=4CG,`!(04I!9B!(038!-`!"0$A`@,,B`$A`,@*"PS`!0D%(04S?``Q.L
M=4A!)@$B`$)!2$%(0$)`=`_0@-.!MH%B!)*#4D!1RO_R3-\`#$YU3E4``$ALE
M@-0_+0`(3KH`"%Q/3EU.=4Y5```O!#@M``@O+0`*/P1.N@`PN'P`"EQ/9B0@H
M;0`*$"@`#$B`"```!V<4/SS__R\M``I.N@#T7$\H'TY=3G5@^$Y5```O"B1M-
M``H@4K'J``1E&#`M``C`?`#_/P`O"DZZ`,A<3R1?3EU.=2!24I(0+0`)$(!(0
M@,!\`/]@Z$Y5```O"D'L@+XD2"!*U?P````6+PAA$%A/0>R"=K7(9>HD7TY=U
M3G5.50``2.<(("1M``AX`"`*9@IP_TS?!!!.74YU2BH`#&=0""H``@`,9PP_M
M//__+PIA4C@`7$\0*@`-2(`_`$ZZ!1R(0`@J``$`#%1/9PHO*@`(3KH"+EA/;
M""H`!0`,9Q(O*@`23KH"P"\J`!).N@(44$]"DD*J``1"J@`(0BH`##`$8)!.[
M5?_^2.<(("1M``A!^O]&*4B"M@@J``0`#&<*</],WP003EU.=0@J``(`#&<P1
M(%*1Z@`(.`@_!"\J``@0*@`-2(`_`$ZZ`H"P1%!/9Q`(Z@`$``Q"DD*J``1PQ
M_V#`#&W__P`,9A`(J@`"``Q"DD*J``1P`&"H2JH`"&8(+PI.N@":6$\,:@`!W
M`!!F*AMM``W__S\\``%(;?__$"H`#4B`/P!.N@(BL'P``5!/9J`P+0`,8`#_V
M:B2J``@P*@`02,#0J@`()4``!`CJ``(`#"!24I(0+0`-$(!(@,!\`/]@`/\^M
M3E4``"\*0>R`OB1(2BH`#&<8U?P````60>R"=K7(90AP`"1?3EU.=6#B0I)"A
MJ@`$0JH`""`*8.I.5?_\+PHD;0`(/SP$`$ZZ`,`K0/_\5$]F\``$`$"!*`
MT?P````.)4@`""1?3EU.=35\!```$`CJ``$`#"5M__P`"!`J``U(@#\`3KH`P
MXDI`5$]G!@`J`(``#&#.3E4``$CG`#`D;(*&8!0F4B`J``10@"\`+PI.N@2$\
M4$\D2R`*9NA"K(*&3-\,`$Y=3G5.50``+PI!^O_&*4B"ND*G("T`"%"`+P!.U
MN@0J)$!*@%!/9@AP`"1?3EU.=22L@H8E;0`(``0I2H*&(`I0@&#F3E4``'``(
M,"T`""\`8;)83TY=3G5.50``2.<`,)?+)&R"AF`.(&T`"%&(L<IG$B9*)%(@.
M"F;N</],WPP`3EU.=2`+9P0FDF`$*5*"AB`J``10@"\`+PI.N@/6<`!03V#85
M3E4``"\*,"T`",'\``8D0-7L@IA*;0`(;0XP+0`(L&R"=FP$2I)F#CE\``*"O
MBG#_)%].74YU,"T`",'\``8@;(*8+S`(`$ZZ`LI*@%A/9P1P`6`"<`!@V$Y5M
M```O+0`(3KH"E$J`6$]F#DZZ`IXY0(**</].74YU<`!@^$Y5``!(YPP@."T`<
M"$ZZ`'`P!,'\``8D0-7L@IA*1&T*N&R"=FP$2I)F$#E\``*"BG#_3-\$,$Y=5
M3G4P*@`$P'P``V8*.7P`!8**</]@Y'``,"T`#B\`+RT`"B\23KH"D"H`L+S_I
M____3^\`#&8,3KH"'CE`@HIP_V"X(`5@M$Y5__Q(>!``0J=.N@,$*T#__`@`Z
M``Q03V<22FR"H&8(("W__$Y=3G5.N@`&<`!@]$Y5``!(>``$2'H`'$ZZ`@XO^
M`$ZZ`BP_/``!3KH`#D_O``Y.74YU7D,*`$Y5``!*K(*V9P8@;(*V3I`_+0`(!
M3KH`"%1/3EU.=4Y5__PO!#`M``A(P"M`__Q*K(*89RAX`&`*/P1.N@#^5$]2$
M1+AL@G9M\#`L@G;!_``&+P`O+(*83KH"(E!/2JR"NF<&(&R"NDZ02JR"?&<*M
M+RR"?$ZZ`9)83TJL@KYG""!L@KX@K(+"2JR"QF<*+RR"QDZZ`:Y83TJL@LIGU
M"B\L@LI.N@&>6$]*K(+.9PHO+(+.3KH!CEA/2JR"TF<*+RR"TDZZ`7Y83RQX;
M``0(+@`$`2EG%"\-2_H`"DZN_^(J7V`&0J?S7TYS2JR"HF8P2JR"KF<H,"R"Y
MK$C`+P`O+(*N3KH!>C`L@JI20$C`Y8`O`"\L@J9.N@%F3^\`$&`.3KH!4"\L)
M@J).N@&$6$\@+?_\+FR"C$YU*!].74YU3E4``$CG#B`X+0`(,`3!_``&)$#5=
M[(*82D1M"KAL@G9L!$J29A`Y?``"@HIP_TS?!'!.74YU""H`!P`$9@@O$DZZ<
M``I83T*2<`!@XB(O``0L;(*43N[_W$[Z``(B+P`$+&R"E$[N_X(B+P`$+&R"*
ME$[N_[@L;(*43N[_RBQL@I1.[O]\(B\`!"QL@I1.[O\H(B\`!"QL@I1.[O]JM
M3.\`!@`$+&R"E$[N_ZQ,[P`&``0L;(*43N[_XBQL@I1.[O_$(B\`!"QL@I1.H
M[O]D3OH``B(O``0L;(*43N[_IDSO``X`!"QL@I1.[O_02.<!!$SO((``#"QLX
M@I!.KO^43-\@@$YU3OH``B)O``0L;(*03N[^8D[Z``),[P`#``0L;(*03N[_%
M.D[Z``(B;P`$+&R"D$[N_MHL;(*03N[_?$[Z``(B;P`$("\`""QL@I!.[O\N!
M(&\`!"QL@I!.[OZ,3OH``BQL@I`B;P`$("\`"$[N_=@B;P`$+&R"D$[N_H9,_
M[P`#``0L;(*03N[^SB!O``0L;(*03N[^@$SO`P``!"QL@K).[O^@(&\`!"QLS
M@K).[O^F(&\`!"QL@K).[O^R```#[`````$````!```*``````````/R```#4
MZ@```*`````$````"@```!0````8````(0```"<````L````,@```#4`````?
M,#$R,S0U-C<X.6%B8V1E9@```"`@("`@("`@(#`P,#`P("`@("`@("`@("`@R
M("`@("`@D$!`0$!`0$!`0$!`0$!`0`P,#`P,#`P,#`Q`0$!`0$!`"0D)"0D)^
M`0$!`0$!`0$!`0$!`0$!`0$!`0%`0$!`0$`*"@H*"@H"`@("`@("`@("`@("J
M`@("`@("`D!`0$`@``````````````````$``````0``````````````````P
M```!`0````$``````````````````````0(````!````````````````````'
M`````````````````````````````````````````````````````````````
M`````````````````````````````````````````````````````````````
M`````````````````````````````````````````````````````````````
M`````````````````````````````````````````````````````````````
M`````````````````````````````````````````````````````````````
M`````````````````````````````````````````````````````````````
M`````````````````````````````````````````````````````````````
M`````````````````````````````````````````````````````````````
M`````!0````````````````#[`````D```````````````0````(````#```D
F`!`````4````&````!P````@`````````_(```/K`````0```_((9
``
end
size 7508
SHAR_EOF
cat << \SHAR_EOF > README
*************************************************************************
* MAN.C: A simple UNIX-like "man" command.
* 100% PUBLIC DOMAIN. 1-16-89
* Daniel Barrett, barrett@cs.jhu.edu
*************************************************************************
Here is a VERY simple and short program inspired by the UNIX "man" command.
I got sick of continually hunting for documentation on programs, so I
put all the documentation files in a nicely-organized directory hierarchy.
This program makes it easy to find and read that documentation at any time.
I think this program will be most useful to people with hard drives, since
they can keep all your documentation on-line all the time. However, it
is certainly useable from floppies. Try it out and see! You might just
name one floppy "MAN:" and keep all your documentation on it.
"Man" allows you to look up documentation for a command by saying:
Man command-name
See the file "Man.doc" for more specific information. See also the
source code.
Have fun, and feel free to make this program more sophisticated
if you want.
Dan
SHAR_EOF
cat << \SHAR_EOF > man.doc
MAN(0) Dan's Programmer's Manual MAN(0)
NAME
man - look up documentation on a command
SYNOPSIS
man [-d directory] command_1 command_2 ... command_N
man ?
DESCRIPTION
"Man" looks in the volume or directory "MAN:" for information
about the given commands, and then displays it on the screen.
This is version 2.0. Unlike the original version, "Man" now
checks a defined set of subdirectories in MAN:, and not MAN:
itself. This makes organizing your documentation easier, and
there is no noticeable decrease in search speed. (Particularly
on a hard drive with Fast Filesystem!)
If you specify the "-d directory" option, only the named
subdirectory (in MAN:) is searched; any others are ignored.
[Note: if you want to search MAN: itself, not its subdirectories,
you can type:
Man -d "" command
]
When the requested documentation is found, it is displayed
using the program "More", found on the Amiga "Extras" disk.
(Make sure that "More" is in your search path.) You can use
a different text display program by changing the value of "MORE"
in the source code. If no documentation is found, you are told.
Typing "Man" or "Man ?" prints usage information, as well as
the list of subdirectories (in MAN:) that it searches in order.
These directory names are easily changed in the source code.
BEFORE USING MAN
First, assign MAN: to some directory someplace.
Second, type "Man" alone to see what subdirectories it searches.
Create these subdirectories in MAN:.
Third, put your documentation files in these subdirectories.
THE NAME OF EACH DOCUMENTATION FILE MUST BE THE SAME AS THE NAME
OF THE PROGRAM IT DOCUMENTS.
EXAMPLES
Man list cd dir info
Searches the subdirectories of MAN: for documentation files
called "list", "cd", "dir", and "info", displaying them as
it finds them.
Man -d Graphics DPaint Animator
Searches only the directory MAN:Graphics for documentation
files called "DPaint" and "Animator", displaying them as
it finds them.
FILES
MAN: Manual directory.
More File viewing program, must be in your search path.
c:Assign For "Assign MAN: some-directory-of-your-choice".
COMPILING
I used MANX C, with 16-bit integers:
cc man.c
ln man.o -lc
BUGS
None that I know of. It's a very simple program.
AUTHOR
Daniel Barrett: barrett@cs.jhu.edu, ins_adjb@jhunix.UUCP.
Finished 1-16-89.
MAN Executable program and source code are 100% PUBLIC DOMAIN.
SHAR_EOF
# End of shell archive
exit 0
--
Bob Page, U of Lowell CS Dept. page@swan.ulowell.edu ulowell!page
Have five nice days.